/** 运动框架
 * 参数1： 实例对象this
 * 参数2： 绑定的运动名animationData 设置数据 animation: {}
 * 参数3：运动的配置项 json对象
 * 参数4： 运动的时间，多长时间完成
 * 参数5：回调函数
 **/
export function animate(jsonObj){
	var defaultObj = {
		el: jsonObj.el,  //示例对象，this
		animationName: jsonObj.animationName || 'animationData',  //运动名称
		json: jsonObj.json || {
					opcity: 1
				},
		timingFunction: jsonObj.timingFunction || 'ease',  //运动方式
		time: jsonObj.time || 400,  //完成一次运动所需要的花费时间
		callback: jsonObj.callback,  //完成一次运动后的回调函数
	};
	if(!defaultObj.el || Object.prototype.toString.call(defaultObj.el)!='[object Object]'){
		console.log('请传递this对象');
		return;
	};
	var animation = uni.createAnimation({
		duration: defaultObj.time,
		timingFunction: defaultObj.timingFunction //运动类型
	});
	var animationData = defaultObj.animationName;
	
	Object.keys(defaultObj.json).forEach((item, i)=>{
		var val = defaultObj.json[item];
		if(Object.prototype.toString.call(val)=='[object Array]'){
			animation[item](...val);
		}else{
			animation[item](val);
		}
		
	});
	animation.step();
	defaultObj.el[animationData] = animation.export();
	setTimeout(()=>{
		if(typeof(defaultObj.callback)=='function'){
			defaultObj.callback();
		}
	}, defaultObj.time);
}